ClipEffect

Object Hierarchy | 関連する C++クラス:ClipEffect

継承

SIObject

ClipEffect

導入

v4.0

詳細

ClipEffect オブジェクトは、クリップに関連したエフェクトのセットを表します。各 ClipEffect オブジェクトには、MappedItemに対応している1 つの項目が含まれます。これらのClipEffectItemには、クリップのインスタンスが作成されたSourceに影響を与えずにクリップを制御できるエクスプレッションが含まれます。たとえば、'(cid * 10) + this' のような式を使用して、プログレッシブ オフセットでウォーク サイクルを作成できます。

クリップ エフェクトは、Clip.Effect プロパティを使用して Clip オブジェクトから使用できます。

メソッド

IsClassOfオペレータ IsEqualToオペレータ    
       

プロパティ

Application Categories FullNameオペレータ Help
IsActive IsPoseEffectActive Items Nameオペレータ
NestedObjects Origin OriginPath Parent
PoseEffect TimeReference Typeオペレータ Variables

1. Python の例

oRoot = Application.ActiveSceneRoot
oCube = oRoot.AddGeometry("Cube", "MeshSurface")        
#Creating the first animation source
oSource = Application.StoreAction(oRoot, "cube.kine.local.posx,cube.kine.local.posy,cube.kine.local.posz", 
        1, "StoredStaticPose", 1, 1, 5, 0, 0)
#Creating the first clip
oClip = Application.AddClip(oRoot, oSource)     
for i in range(oClip.MappedItems.Count):
        oCurrMappedItem = oClip.MappedItems(i)
        oParam = oCurrMappedItem.Destination
        if oParam.FullName == "cube.kine.local.posy":
                Application.SetMappingRule(oClip.FullName + ".ActionClip",oParam,"frame",i+1)
                break
Application.LogMessage("The expression associated with the posy item is " 
        + oCurrMappedItem.ClipEffectItem.Expression)

2. JScript の例

/*
        This example demonstrates how to get at the ClipEffect objects by creating some 
        sources and clips with clip effects and then finding them again through the mapped 
        items on the clips in the mixer.
*/
NewScene( ActiveProject, false );
// Set up some sources and clips in the scene (see end of example for details)
CreateFCurveAction( ActiveSceneRoot );
// Get all the clips in the mixer and then the sources
var clips = ActiveSceneRoot.Mixer.Clips;
for ( var i=0; i<clips.Count; i++ ) {
        // Look at their mapped items, but avoid the audio clips
        if ( clips(i).Type != siClipAudioType && clips(i).MappedItems ) {
                var clp = clips(i);
                LogMessage( "Found " + clp.MappedItems.Count + " mapped items(s)" );
                for ( var j=0; j<clp.MappedItems.Count; j++ ) {
                        var mapping = clp.MappedItems(j);
                        if ( mapping.ClipEffectItem.Expression != "" ) {
                                LogMessage( "\t...this clip has a clip effect item matching this expression:" );
                                LogMessage( "\t\t" + mapping.ClipEffectItem.Expression );
                        }
                        LogMessage( "\t...destination parameter: " + mapping.Destination );
                }
        }
}
// Expected results:
//INFO : Found 3 mapped items(s)
//INFO :        ...this clip has a clip effect item matching this expression:
//INFO :                this+5
//INFO :        ...destination parameter: null.kine.local.sclx
//INFO :        ...destination parameter: null.kine.local.scly
//INFO :        ...destination parameter: null.kine.local.sclz
// Convenience function
function CreateFCurveAction( in_model )
{
        var obj = in_model.AddNull();
        // Set FCurves on the null's scaling
        var keys = new Array( 5, 1.2,  20, 1.7,  45, 2.0,  90, 2.5 );
        obj.sclx.AddFCurve2( keys );
        var keyfactor = Math.random() * 10;
        var posfactor = Math.random();
        for ( var i=0; i<keys.length; i=i+2 ) {
                keys[i] = keys[i] + keyfactor;
                keys[i+1] = keys[i+1] * posfactor;
        }
        obj.scly.AddFCurve2( keys );
        var keyfactor = Math.random() * 10;
        var posfactor = Math.random();
        for ( var i=0; i<keys.length; i=i+2 ) {
                keys[i] = keys[i] - keyfactor;
                keys[i+1] = keys[i+1] * posfactor;
        }
        obj.sclz.AddFCurve2( keys );
        // Get list of parameters to mark
        var params = obj.sclx.FullName + ",";
        params += obj.scly.FullName + ",";
        params += obj.sclz.FullName;
        // Make the FCurves into an Action
        var src = StoreAction( in_model, params, 2, "StoredAnimFCrvAction" );
        var clip = AddClip( in_model, src );
        // Add some clip effects to it
        var toclip = clip+".ActionClip";
        var rtn = GetMappingRule( toclip, 0 );
        var from = rtn.Value( "From" );
        SetMappingRule( toclip, from, "this+5", 1 );
}

関連項目

ClipEffectItem Clip.Effect GetMappingRule SetMappingRule